layui.use(["upload", "layer"], function () {
  var upload = layui.upload;
  var layer = layui.layer;
  var demoListView = $("#multi_upload__List"),
    uploadListIns = upload.render({
      elem: "#multi_upload__select",
      url: "/file/folder/import",
      accept: "file",
      exts: "pdf",
      multiple: true,
      auto: false,
      bindAction: "#multi_upload__submit",
      before: function (obj) {
        this.data = { type: sessionStorage.getItem("__fileType") }; //关键代码
      },
      choose: function (obj) {
        var files = (this.files = obj.pushFile()); //将每次选择的文件追加到文件队列
        file_number++;

        //读取本地文件
        obj.preview(function (index, file, result) {
          var tr = $(
            [
              '<tr id="upload-' + index + '">',
              "<td>" + file.name + "</td>",
              "<td>" + (file.size / 1024).toFixed(1) + "kb</td>",
              "<td>等待上传</td>",
              "<td>",
              '<button class="layui-btn layui-btn-xs demo-reload layui-hide">重传</button>',
              '<button class="layui-btn layui-btn-xs layui-btn-danger demo-delete">删除</button>',
              "</td>",
              "</tr>",
            ].join("")
          );

          //单个重传
          tr.find(".demo-reload").on("click", function () {
            obj.upload(index, file);
          });

          //删除
          tr.find(".demo-delete").on("click", function () {
            delete files[index]; //删除对应的文件
            tr.remove();
            uploadListIns.config.elem.next()[0].value = ""; //清空 input file 值，以免删除后出现同名文件不可选
          });

          demoListView.append(tr);
        });
      },
      done: function (res, index, upload) {
        if (res.status == 200) {
          //上传成功
          var tr = demoListView.find("tr#upload-" + index),
            tds = tr.children();
            layer.msg("上传成功！");
          tds.eq(2).html('<span style="color: #5FB878;">上传成功</span>');
          tds.eq(3).html(""); //清空操作
          success_upload_file_number++;
          if (success_upload_file_number == file_number) {
            success_upload_file_number = 0;
            file_number = 0;
            demoListView[0].innerHTML = "";
            // layer.close(mul_index);
          }
          return delete this.files[index]; //删除文件队列已经上传成功的文件
        } else if (res.status == 500) {
          layer.msg("错误!" + res.message);
          delete this.files[index];
        }
        this.error(index, upload);
      },
      error: function (index, upload) {
        var tr = demoListView.find("tr#upload-" + index),
          tds = tr.children();
        tds.eq(2).html(`<span style="color: #FF5722;">` + "错误" + `</span>`);
        tds.eq(3).find(".demo-reload").removeClass("layui-hide"); //显示重传
      },
    });
});
